package com.changgou.goods.service;

import com.changgou.goods.pojo.Goods;
import com.changgou.goods.pojo.Spu;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface SpuService {

    /***
     * 查询所有
     * @return
     */
    List<Spu> findAll();

    /***
     * 修改
     * @param spu
     */
    void update(Spu spu);

    /***
     * 删除
     * @param id
     */
    void delete(String id);

    /***
     * 多条件搜索
     * @param searchMap
     * @return
     */
    List<Spu> findList(Map<String, Object> searchMap);

    /***
     * 分页查询
     * @param page
     * @param size
     * @return
     */
    Page<Spu> findPage(int page, int size);

    /***
     * 多条件分页查询
     * @param searchMap
     * @param page
     * @param size
     * @return
     */
    Page<Spu> findPage(Map<String, Object> searchMap, int page, int size);


    /**
     * @Description:    增加
     * @Author:        wangqingsong
     * @param:           [goods]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/23 14:21
     */
    void add(Goods goods);

    /**
     * @Description:    根据id进行查询
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/23 16:57
     */
    Goods findById(String id);


    /**
     * @Description:    修改数据
     * @Author:        wangqingsong
     * @param:           [goods]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/23 17:22
     */
    void edit(Goods goods);

    /**
     * @Description:    审核
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/25 13:39
     */
    void audit(String id);

    /**
     * @Description:    下架
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/25 13:55
     */
    void down(String id);

    /**
     * @Description:    上架
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/25 14:02
     */
    void up(String id);

    /**
     * @Description:    还原被删除的商品
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/25 14:32
     */
    void recover(String id);


    /**
     * @Description:    物理删除
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/11/25 14:51
     */
    void realDelete(String id);


    /**
     * @Description:    根据id查询spu
     * @Author:        wangqingsong
     * @param:           [id]
     * @return:          com.changgou.entity.Result
     * @CreateDate:     2020/12/1 13:54
     */
    Spu findBySpuById(String id);
}
